/*
 * @作者: 赖乾恩
 * @邮箱: laiqe@qq.com
 * @功能: 
 * @包含算法: 
 * Copyright (c) 2023 by 赖乾恩, All Rights Reserved. 
 */
#include <iostream>
#include <vector>
#include <string>
#include <sstream>
#include <queue>
using namespace std;



int main() {
  vector<int> hash(2001,0);

  string input;
  getline(cin, input);
  stringstream stringin(input);
  int num_total;
  int color_limit;
  stringin>>num_total;
  stringin>>color_limit;
  vector<int> band;
  
  getline(cin, input);
  stringstream stringin_2(input);
  for(int i=0;i<num_total;i++){
     int temp;
    stringin_2>>temp;
    band.push_back(temp);
  }
  int slow=0;
  int fast=0;
  int color_cur=1;
  hash[band[0]]=1;

  while(fast<num_total){
    
    if(color_cur<=color_limit){
      fast++;
    }
    else{
      fast++;
      hash[band[slow]]-= 1;
      if(hash[band[slow]]<=0){
        color_cur--;
      }
      slow++;
    } 
    
    if(hash[band[fast]]==0){
      color_cur++;
    }
    hash[band[fast]] += 1;
    
  }

//cin>>n;
  cout<<fast-slow;
  return fast-slow;
}
小美现在有一串彩带，假定每一厘米的彩带上都是一种色彩。

因为任务的需要，小美希望从彩带上截取一段，使得彩带中的颜色数量不超过K种。

显然，这样的截取方法可能非常多。于是小美决定尽量长地截取一段。

你的任务是帮助小美截取尽量长的一段，使得这段彩带上不同的色彩数量不超过K种。